function [x,k] = jacobi(A,b,error,m,x0)

	if det(A) != 0
		
		k = 0;
		aux = triu(A);
		aux2 = tril(A);
	
		D = tril(aux); % tambien podria haber sido triu(aux2)
		U = aux - D;
		L = aux2 - D;
		% ya tenemos A = L + U + D

		ID = inv(D);
		
		C = ID * b;
		T = ID * (L + U) * -1;
	
		x = C + T*x0;
		while norm(x-x0,inf) > error && (k < m)
			x0 = x;
			x = T*x0 + C;
			++k;
		end
	else
		fprintf('ERROR, la matriz ingresada es singular!!, pruebe con otra\n')
    end

	
end	
